﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0068)http://designplusplus.googlecode.com/svn/trunk/MokaBlog/hiradio.html -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><HTML 
lang="zh-tw" xml:lang="zh-tw" xmlns="http://www.w3.org/1999/xhtml"><HEAD>
<META content="text/html; charset=utf-8" http-equiv="Content-Type">
<META name="author" content="C.H.Weng-OriginalCoder">
<META name="blog" content="http://www.chweng.idv.tw/hiradio/">
<META name="author" content="Moka-CrossPlatform">
<META name="blog" content="http://designplusplus.blogspot.com">
<META name="copyright" content="姓名標示-非商業性-相同方式分享（Creative Commons）, http://creativecommons.org/licenses/by-nc-sa/2.5/">
<TITLE>Design++ Online Radio</TITLE>
<META name="GENERATOR" content="MSHTML 9.00.8112.16434"></HEAD>
<BODY><HTA:APPLICATION toolbar="no" maximizeButton="no" singleInstance="yes" 
menubar="no" scroll="no" version="1.1.10" applicationName="handy hiRadio">
<SCRIPT type="text/javascript"><!--
// built-in channel information
var hiRadioBaseURL = 'mms://bcr.media.hinet.net/';
var hiLiveBaseURL = 'mms://wmslive.media.hinet.net/';
var channels = [ // Last updated 2009.05.19
	['', 'RA000081', 'RA000042', 'RA000040', 'RA000044', 'RA000041', 'RA000043', 'RA000007', 'RA000009', 'RA000036', 'RA000035', 'RA000034', 'RA000080', 'RA000018', 'RA000014', 'RA000013', 'RA000012', 'RA000010', 'RA000011', 'RA000001', 'RA000004', 'RA000019', 'RA000031', 'RA000047', 'RA000061', 'RA000064', '', 'RA000072', 'RA000003', 'RA000002', 'RA000037', 'RA000020', 'RA000068', 'RA000029', 'RA000030', 'RA000017', 'RA000079', 'RA000027', 'RA000028', 'RA000069', 'RA000070', 'RA000046', 'RA000067', 'RA000065', 'RA000033', '', 'RA000008', 'RA000073', '', 'RA000016', 'RA000015', 'RA000024', 'RA000025', 'RA000026', 'RA000076', 'RA000074', 'RA000077', 'RA000075', 'RA000063', 'RA000032', '', 'RA000038', 'RA000062', 'RA000060', 'RA000059', '', 'RA000066', 'RA000006', 'RA000021', 'RA000023', 'RA000048', 'RA000045', 'RA000005', 'RA000051', '', 'RA000049', 'RA000050', '', 'WebLive_KuMovie_600', 'WebLive_KuMovie_1200', 'WebLive_KuDrama_600', 'WebLive_KuDrama_1200', 'WebLive_KuLife_600', 'WebLive_KuLife_1200', 'WebLive_KuSport_300', 'WebLive_KuSport_600', 'WebLive_KuSport_1200', 'BC000016', 'BC000003', 'BC000010', 'BC000005', 'WebLive_FTV_600', 'WebLive_FTV_1200', 'WebLive_cts_600', 'WebLive_cts_1200', 'BC000012', 'BC000011', 'WebLive_Lotto_600', 'WebLive_Bloomberg_300', 'WebLive_Bloomberg_600', 'WebLive_Bloomberg_1200', 'WebLive_DaaiTV2_600', 'WebLive_DaaiTV2_1200', 'WebLive_BLTV_600', 'WebLive_BLTV_1200', 'WebLive_nexTV_MusicCall_600', 'WebLive_nexTV_MusicCall_1200', 'WebLive_CTS_EQ_600', 'WebLive_CTS_EQ_1200', 'WebLive_CTS_IQ_600', 'WebLive_CTS_IQ_1200', 'WebLive_Ctv_600', 'Weblive_Ctv_1200', 'WebLive_DaaiTV_300', 'WebLive_DaaiTV_600', 'WebLive_DaaiTV_1200', 'WebLive_LifeTV_600', 'WebLive_LifeTV_1200'],
	['音樂', 'Bravo FM913', 'KISS RADIO 網路音樂台', 'KISS RADIO 大眾廣播電台', 'KISS RADIO 台南知音廣播', 'KISS RADIO 大苗栗廣播', 'KISS RADIO 南投廣播', '中廣音樂網i radio', '中廣流行網', '台北之音HitFM聯播網 台北', '台北之音HitFM聯播網 台中', '台北之音HitFM聯播網 高雄', 'POP Radio', '台北愛樂', '奇美古典音樂網', 'BestRadio 台北好事989', 'BestRadio 高雄港都983', 'BestRadio 台中好事903', 'BestRadio 花蓮好事935', 'Apple line 蘋果線上', 'ASIAFM衛星音樂台', 'Flyradio飛揚調頻895', '佳音廣播電台 CCM', '全國廣播音樂網', '台灣之音-音樂', '太陽電台', '生活', '飛碟電台', 'ASIA FM92.7亞州電台', 'ASIA FM92.3亞太電台', 'IC之音', '環宇廣播', '全國廣播', '佳音廣播電台', '佳音廣播電台 二台', '大愛網路電台', '青春電台', 'GOLD FM-台北健康電台', 'GOLD FM-台中城市廣播', '台北廣播電台喔海洋頻道', '台北廣播電台- 都會資訊頻道', '台中廣播', '大千電台', '宜蘭中山電台', '真心之音廣播電台', '新聞', '中廣新聞網', 'NEWS98新聞網', '綜合', '正聲台北調頻台', '正聲台北調幅台', '復興廣播電台 第一網', '復興廣播電台 第二網', '復興廣播電台 短波網', '漢聲廣播電台全國調頻網', '漢聲廣播電台', '漢聲光華網-短波', '漢聲光華網-中波', '台灣之音-華語', '綠色和平台灣文化廣播電台', '外語', 'ICRT', '台灣之音-歐美及方言', '台灣之音-FM', '台灣之音-亞洲', '多元文化', '寶島新聲廣播電台', '中廣客家頻道', '大漢之音', '寶島客家', '新客家廣播電台', '高屏溪客家電台', '中廣寶島網', '長青網1260', '交通', '全國治安交通網', '地區治安交通網台北台'/*, 'hiChannel 影音頻道', 'KuMovie（600 kbps）', 'KuMovie（1200 kbps）', 'KuDrama（600 kbps）', 'KuDrama（1200 kbps）', 'KuLife（600 kbps）', 'KuLife（1200 kbps）', 'KuSport（300 kbps）', 'KuSport（600 kbps）', 'KuSport（1200 kbps）', '日本職棒 PBL 直播', 'NBA 直播活動', 'SBL 超級籃球聯賽', 'LPGA 高爾夫直播', '民視直播新聞（600 kbps）', '民視直播新聞（1200 kbps）', '華視影音頻道（600 kbps）', '華視影音頻道（1200 kbps）', '東森亞洲衛視', '東森美洲新聞', '非凡八點彩券王', 'Bloomberg Television（300 kbps）', 'Bloomberg Television（600 kbps）', 'Bloomberg Television（1200 kbps）', '大愛電視二台（600 kbps）', '大愛電視二台（1200 kbps）', '人間衛視（600 kbps）', '人間衛視（1200 kbps）', '流行追蹤（600 kbps）', '流行追蹤（1200 kbps）', '華視 EQ 休閒頻道（600 kbps）', '華視 EQ 休閒頻道（1200 kbps）', '華視 IQ 教育文化頻道（600 kbps）', '華視 IQ 教育文化頻道（1200 kbps）', '中視整點新聞（600 kbps）', '中視整點新聞（1200 kbps）', '大愛電視台（300 kbps）', '大愛電視台（600 kbps）', '大愛電視台（1200 kbps）', '生命電視台（600 kbps）', '生命電視台（1200 kbps）'*/],
	['', 1001, 308, 156, 255, 256, 258, 206, 205, 222, 88, 90, 370, 228, 294, 212, 213, 211, 303, 248, 321, 357, 340, 338, 313, 289, '', 232, 210, 295, 148, 282, 202, 201, 250, 325, 356, 229, 226, 238, 208, 230, 109, 301, 217, '', 207, 187, '', 198, 317, 286, 287, 288, 216, 215, 309, 281, 315, 327, '', 177, 314, 312, 311, '', 259, 160, 300, 241, 254, 298, 162, 0, '', 0, 0, '', 998, 998, 999, 999, 997, 997, 996, 996, 996, 607, 606, 605, 608, 600, 600, 50, 50, 27, 30, 58, 1001, 1001, 1001, 57, 57, 113, 113, 21, 21, 18, 18, 16, 16, 36, 36, 38, 38, 38, 54, 54]
];

function init() {
	//window.resizeTo(360, 120);
	document.oncontextmenu = new Function('return false');
	var list = '<select onchange="loadPlayer(this.options[this.selectedIndex].value)"><option style="color: #f00;" value="">- 請選擇電台 -</option>';
	for (var i = 0; i < channels[0].length; ++i) {
		if(i == 1)continue;
		if(channels[1][i]==undefined)continue;
		if (/^(RA|WebLive|BC)/i.test(channels[0][i])) {
			list += '<option value="' + i + '">' + channels[1][i] + '</option>';
		} else {
			list += '<option style="color: #00f;" value="">- ' + channels[1][i] + ' -</option>';
		}
	}
	list += '</select>';
	document.getElementById('menu').innerHTML = list;
}

function pageGetContents(url) {
	try {
		var objHTTP = new ActiveXObject('WinHttp.WinHttpRequest.5.1');
	} catch(e) {
		return false;
	}
	objHTTP.Option(6) = false;
	objHTTP.Open('GET', url, false);
	objHTTP.SetRequestHeader('Referer', 'http://hichannel.hinet.net/');
	try {
		objHTTP.Send();
	} catch(e) {
		return false;
	}
	if (objHTTP.Status == 200 || objHTTP.Status == 302) {
		return objHTTP.ResponseText;
	} else {
		return false;
	}
}

function getDRMAuthorization(id, type) {
	var checkDRM = function () {
		try {
			if (typeof(crlWindow) === 'object' && crlWindow.closed === false && typeof(crlWindow.document.title) === 'string') {
				if (crlWindow.document.title === '') {
					delete checkDRM;
					crlWindow.close();
					alert('DRM 驗證成功');
				} else if (new RegExp(decodeURI('%E5%A4%B1%E6%95%97')).test(crlWindow.document.title)) {
					delete checkDRM;
					crlWindow.close();
					alert('DRM 驗證失敗');
				}
			}
		} catch(e) {
		}
	}
	/*try {
		switch (type) {
			case 'hiradio':
				var crlWindow = window.open('http://hichannel.hinet.net/player/drm/radio_getLicense.jsp?key=WebLive_' + channels[0][id] + '&key2=' + pageGetContents('http://hichannel.hinet.net/player/tPlayer_radio.jsp?id=' + channels[2][id] + '&type=index').split('key2=', 2)[1].split('&sn=', 1) + '&sn=', 'crlWindow','width=400,height=296,top=0,left=0');
				break;
			case 'hichannel':
				if (/^WebLive_/i.test(channels[0][id])) {
					var nid = channels[0][id];
				} else {
					var nid = 'WebLive_' + channels[0][id];
				}
				var crlWindow = window.open('http://hichannel.hinet.net/player/drm/live_getLicense.jsp?key=' + nid + '&key2=' + pageGetContents('http://hichannel.hinet.net/player/tPlayer_live.jsp?id=' + channels[2][id] + '&type=index').split('key2=', 2)[1].split('&sn=', 1) + '&sn=', 'crlWindow','width=400,height=296,top=0,left=0');
				break;
		}
	} catch(e) {
	}*/
	for (var i = 1; i <= 20; ++i) {
		setTimeout(checkDRM, i * 1000);
	}
}

function loadPlayer(id) {

	if (channels[0][id] !== '') {	
		if (/^RA/.test(channels[0][id])) {
			//window.resizeTo(360, 180);
			getDRMAuthorization(id, 'hiradio');		
			if(document.getElementById('myPlayer'))document.getElementById('myPlayer').controls.stop();

			if (navigator.appName.indexOf("Netscape") != -1) {
			    document.getElementById('player').innerHTML = '<object id="myPlayer" style="width: 322px; height: 64px;" type="application/x-ms-wmp"><param name="URL" value="' + hiRadioBaseURL + channels[0][id] + '" /><param name="AutoStart" value="true" /><param 				name="uiMode" value="mini" /><embed autostart="true" src="' + hiRadioBaseURL + channels[0][id] + '" type="video/x-ms-wmv" 				width="322" height="64"> </embed> </object>';
			} else if (navigator.appName.indexOf("Microsoft") != -1) {
			    document.getElementById('player').innerHTML = '<object id="myPlayer" style="width: 322px; height: 64px;" 				classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="application/x-ms-wmp"><param name="URL" value="' + hiRadioBaseURL + channels[0][id] + '" /><param name="AutoStart" value="true"/><param name="uiMode" value="mini" /><embed autostart="true" 					src="' + hiRadioBaseURL + channels[0][id] + '" type="video/x-ms-wmv" width="322" height="64"> </embed> </object>';
			} else {
			    document.getElementById('player').innerHTML = '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" width="322" height="64"> <param name="src" value="' + hiRadioBaseURL + channels[0][id] + '" ><param name="controller" value="true" >  <param name="autoplay" value="false"> <object type="video/quicktime" data="' + hiRadioBaseURL + channels[0][id] + '" width="322" height="64"> <param name="controller" value="true" > <param name="autoplay" value="false"> </object></object>';
            }


	} else if (/^(WebLive|BC)/i.test(channels[0][id])) {
			window.resizeTo(900, 720);
			getDRMAuthorization(id, 'hichannel');
			document.getElementById('player').innerHTML = '<object style="width: 800px; height: 600px;" classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="application/x-oleobject"><param name="URL" value="' + hiLiveBaseURL + channels[0][id] + '" /><param name="uiMode" value="mini" /><param name="enableErrorDialogs" value="1" /><param name="stretchToFit" value="1" /><param name="enableContextMenu" value="0" /></object>';
		}
	}
}

if(window.attachEvent){
     window.attachEvent("onload",init);
}else if(window.addEventListener){
     window.addEventListener('load',init,false);
}

--></SCRIPT>

<STYLE type="text/css">
body {
	cursor: default;
	background-color: #FFFFFF;
	background-image: url(http://designplusplus.googlecode.com/svn/trunk/MokaBlog/images/innerwrap.gif);
	background-repeat: repeat;
}
#menu, #player { text-align: center; }
#menu { margin-bottom: 20px; }
.text {
	color: #FFFFFF;
}
</STYLE>

<H1 style="color: rgb(51, 51, 51); font-size: 24px;" class="text" 
align="center">Design++ Online Radio<BR><A href="http://www.chweng.idv.tw/hiradio/" 
target="_blank"></A></H1>
<CENTER>
<P><A href="http://www.chweng.idv.tw/hiradio/" target="_blank"><SPAN style="color: rgb(85, 26, 139); font-size: 12px;">Original 
Coder</SPAN></A><SPAN style="color: rgb(51, 51, 51); font-size: 12px;" class="text"><SPAN 
style="color: rgb(51, 204, 0);">&amp; 網路跨平台修正 by </SPAN><A href="http://designplusplus.blogspot.com/" 
target="_blank"><SPAN 
style="color: rgb(85, 26, 139);">DesignPlusPlus</SPAN></A></SPAN></P>
<P><SPAN 
style="color: rgb(51, 51, 51); font-family: PMingLiU; font-size: 12px;">想要跟站長有一樣的 
launch 按鈕嗎 ? <A href="http://designplusplus.googlecode.com/svn/trunk/MokaBlog/download/LaunchPlayerButton.txt" 
target="_blank"><SPAN style="color: rgb(85, 26, 139);">下載 script</SPAN></A> 
並放在您的 blog</SPAN><BR></P></CENTER>
<DIV id="menu"></DIV>
<DIV id="player" class="text">（尚未載入電台）</DIV>
<H5 align="center">&nbsp;</H5></HTA:APPLICATION></BODY></HTML>
